import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import menu from './modules/menu'
import user from './modules/user'

Vue.use(Vuex)

const store = new Vuex.Store({
  // 组合模块的配置项
  // 模块化开发：
  // 1、拆分出去的模块，要在modules位置注册号 否则不生效
  // 2、一旦开启了命名空间 namespace 调用mutations、action
  // this.$store.commit('模块名/mutations名字')
  modules: {
    app,
    settings,
    menu,
    user
  },
  getters
})

export default store

// 1\ 区分vuex和 vuex。store实例出来的store 不一样 我们用的是后者
// 2、默认导出的写法 再导入时名字随意 语义化即可
// 3、按需导出的时候 再导入的时候必须加上{} 且名字必须对应
